package rladidxo.basic;

public class J11_SungJuk_v4 {
	public static void main(String[] args) {
		// 객체 지향 기법을 이용해서 성적처리 프로그램 작성
		/*
		 * J11SungJuk sj= new J11SungJuk(); 
		 * sj.name = "지현"; sj.kor = 98; sj.eng
		 * = 70; sj.mat = 67; //초기화가 불편 - 생성자를 이용할 것! //만일, 기본생성자 없이 사용자 정의 생성자만
		 * 만든다면? 
		 * sj = new J11SungJuk("수지", 98,75,68);
		 */
		J11SungJuk sj = new J11SungJuk("수지", 98, 75, 68);
		System.out.print(sj.name + "\t");
		System.out.print(sj.kor + "\t");
		System.out.print(sj.eng + "\t");
		System.out.print(sj.mat + "\t");
		
		System.out.print(sj.getTotal()+ "\t");
		System.out.print(sj.getAverage()+ "\t");
		//System.out.println(sj.getGrade();); void는 그냥 실행이 안됨.
		sj.getGrade();						//void형 메소드 호출!!
		System.out.println(sj.grd+ "\t"); 	//주의

	}// main
}// class
// 성적 데이터: 이름,국어,영어,수학,총점,평균,학점
// 성적 메소드: 총점구하기, 평균구하기, 학점구하기
// 결과 출력하기

class J11SungJuk {
	String name;
	int kor;
	int eng;
	int mat;
	double avg;
	int tot;
	char grd;

	/*
	 * public J11SungJuk() {} //기본 생성자
	 */public J11SungJuk(String name, int kor, int eng, int mat/* 인수 or 매개 변수 */) {
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		// this 접두사는 클래스의 멤버 변수를 가리킴
	} // 사용자 정의 생성자
		// 메소드 정의

	/*
	 * void getTotal(){ tot=kor+eng+mat; } void getAverage(){ avg =
	 * (kor+eng+mat)/3; } void getGrade(){ switch((int)(kor+eng+mat)/3){ case
	 * 10:case 9:grd='수';break; } }
	 */// 메서드의 반환값 유형을 무조건 void로 지정
	int getTotal() {
		tot = kor + eng + mat;
		return tot;
	}

	double getAverage() {
		//int imsi = getTotal();
		//avg = imsi/3;
		avg = getTotal() / 3;
		return avg;
	}

	void getGrade() {
		switch ((int) (avg)/10) {
		case 10:
		case 9:
			grd = '수';
			break;
		case 8:
			grd = '우';
			break;
		case 7:
			grd = '미';
			break;
		case 6:
			grd = '양';
			break;
		default:
			grd = '가';
		

		}

	}// 메서드의 반환값 유형을 결과값의 종류에 따라 지정
}// sungjuk